With Internet use forming an ever greater part of day to day life, security exploits that steal or destroy system resources, data, and private information are an increasing problem. Governments and businesses devote significant resources to preventing intrusions and thefts related to these security exploits. Security threats come in many forms, such as computer viruses, worms, trojan horses, spyware, keystroke loggers, adware, and rootkits. These threats typically employ security exploits, which are the weaponization of an attack against a specific vulnerability in software. These threats are delivered in or through a number of mechanisms, such as spearfish emails, clickable links, documents, executables, or archives. Some of the threats posed by security exploits are of such significance that they are described as cyber terrorism or industrial espionage.
To meet the threat posed by these security exploits, many security solutions, such as antivirus software, have been developed. Typically, these solutions scan a computing device, determine if the device is affected by a security threat, and block or remove the security threat. While blocking and removing counter the immediate threat, they are easy for an adversary purveying the security vulnerability to overcome. The affected user is then left always one step behind, always reacting to actions taken by an adversary rather than taking steps to prevent future intrusions and thefts by the adversary.